<!--
 * @Author: WangGuojian 1085844536@qq.com
 * @Date: 2023-09-15 18:54:15
 * @LastEditTime: 2023-09-22 18:35:03
 * @LastEditors: WangGuojian 1085844536@qq.com
 * @FilePath: \htmld:\Developer\WGJ\VSCode_WorkSpace\Web\vue\vue_test\src\components\MyHeader.vue
 * @Description:
-->
<template>
    <div class="todo-header">
        <input
            type="text"
            placeholder="请输入你的任务名称，按回车键确认"
            v-model="title"
            @keyup.enter="add"
        />
    </div>
</template>

<script>
import { nanoid } from 'nanoid';

export default {
    name: 'MyHeader',
    props: ['addTodo'], // 接收从App传递过来的addTodo
    data() {
        return {
            title: '', // 收集用户输入的title
        };
    },
    methods: {
        add() {
            // 校验数据
            if (!this.title.trim()) return alert('输入不能为空');
            // 将用户的输入包装成一个todo对象
            const todoObj = { id: nanoid(), title: this.title, done: false };
            // 通知App组件去添加一个todo对象
            this.addTodo(todoObj);
            // 清空输入
            this.title = '';
        },
    },
};
</script>

<style scoped>
/*header*/
.todo-header input {
    width: 560px;
    height: 28px;
    font-size: 14px;
    border: 1px solid #ccc;
    border-radius: 4px;
    padding: 4px 7px;
}
.todo-header input:focus {
    outline: none;
    border-color: rgba(82, 168, 236, 0.8);
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075),
        0 0 8px rgba(82, 168, 236, 0.6);
}
</style>
